package com.zmn.oms.business.interfaces.perf;

import com.zmn.oms.common.constant.DimensionTypeEnum;
import com.zmn.oms.model.entity.perf.PerfDimension;

import java.time.LocalDate;
import java.util.List;

/**
 * 绩效事实复杂服务
 * 事实：度量的集合体
 * @param <D> 事实实体
 * @author hankangshuai
 * @since 2019/11/20
 **/

public interface PerfFactBService<D extends PerfDimension> {
    /**
     * 获取服务同步的是哪个纬度的事实
     * @return 纬度枚举
     */
    DimensionTypeEnum getDimensionFor();
    /**
     * 同步事实
     *
     * @param dimensions 指定同步的纬度
     * @param syncDate   指定同步的日期
     * @return 更新数量
     */
    Integer syncFact(List<D> dimensions, LocalDate syncDate);
}
